#include <iostream>
#include <cstring>
using namespace std;

/*
	多重继承子类指定父类的构造
	
*/
class Catamount  //猫科动物
{
public:
	Catamount()
	{
		cout<<"猫科构造"<<endl;
	}
	Catamount(int n)
	{
		cout<<"猫科构造,带int参数： "<<n<<endl;
	}
	~Catamount()
	{
		cout<<"猫科析构"<<endl;
	}
};

class Mammal //哺乳动物
{
public:
	Mammal()
	{
		cout<<"哺乳构造"<<endl;
	}
	Mammal(string name)
	{
		cout<<"哺乳构造,带string的参数: "<<name<<endl;
	}
	~Mammal()
	{
		cout<<"哺乳析构"<<endl;
	}
};


class Leopard:public Mammal,public Catamount
{
public:
	//情况1：部分指定,指定了哺乳动物,没有指定的依然使用无参构造
	//Leopard():Mammal("草")
	//Leopard():Catamount(666)
	//情况2：完全指定
	//       完全指定的时候，顺序无所谓
	//Leopard():Catamount(888),Mammal("肉")
	Leopard():Mammal("肉"),Catamount(888)
	{
		cout<<"豹子构造"<<endl;
	}
	~Leopard()
	{
		cout<<"豹子析构"<<endl;
	}
};

int main(int argc,char **argv)
{
	Leopard l1;
	return 0;	
}